home *** CD-ROM | disk | FTP | other *** search
- PASSWORD Function
-
- FUNCTION password
- PARAMETERS pw_len
- PRIVATE pass_str, p_key, cur_curs, cur_win
-
- pw_len = IIF(pcount() = 0, 6, pw_len)
- cur_win = window()
- pass_str = ''
- p_key = 0
-
- cur_curs = SET('cursor') = 'ON'
- SET CURSOR on
-
- DEFINE WINDOW pass_win FROM 09,18 ;
- TO 15,58 DOUBLE
- ACTIVATE WINDOW pass_win
-
- @ 01,09 SAY 'Type in your password'
- @ 02,12 SAY '(' + LTRIM(STR(pw_len)) + ;
- ' characters.)'
- @ 04,15 SAY ''
-
- *** accept data
-
- DO WHILE p_key # 13 && accept until Enter
- p_key = 0
-
- DO WHILE p_key = 0 && allows for OKLs & help
- p_key = INKEY()
- ENDDO
-
- DO CASE
-
- CASE ISALPHA(chr(p_key)) .or. ;
- (p_key >= 32 .and. p_key <= 64)
- pass_str = pass_str + CHR(p_key)
-
- *** keys to delete a character
-
- CASE p_key = 19 .or. p_key = 127 .or. ;
- p_key = 7
- pass_str = LEFT(pass_str,LEN(pass_str)-1)
-
- ENDCASE
-
- *** are we at maximum string length?
-
- IF LEN(pass_str) >= pw_len
- EXIT
- ENDIF
-
- @ 04,15 SAY SPACE(pw_len)
- @ 04,15 SAY REPLICATE('*',LEN(pass_str))
- ENDDO
-
- RELEASE WINDOW pass_win
-
- IF ISBLANK(cur_win)
- ACTIVATE SCREEN
- ENDIF
-
- IF .not. cur_curs
- SET CURSOR OFF
- ENDIF
-
- RETURN(pass_str)
-
- ******
-
-
-